Aurora MySQL スレッドプールの動作イメージ
Aurora MySQLは独自のスレッドプールを作って使ってるわけだが、それの詳細動作イメージを記録しておく。
注意事項として、、、このページは更新が止まってるので、現時点でのAurora MySQLのスレッドプール機能とは内容が異なる可能性が大いにある。
なので、イメージくらいの認識で留めておくのが健全。
スレッドプールを使わない場合の問題
Aurora MySQLでのスレッドプール実装イメージ
①:スレッドを先に複数用意しておき、それらのスレッドをユーザーセッションに対して使い回す
たとえば、あるセッションがIO待ちやロック待ちになったら、対応してるスレッドは別のセッションの対応に回る。
スレッドをマルチコアCPUの1CPU、セッションをプロセスと捉えるとイメージつきやすいかも。
これはMySQLの機能と多分ほぼ同じじゃなかろうかonigiri.w2.icon
②:スレッドプールは自動的にスケーリングする
セッション数が増えてきて、スレッドの数が足りなくなったら、勝手に準備スレッド数が増える。
逆に接続数が少なくなってきたら、スレッドが減る。
これはMySQLには無いかも。MySQLではスレッドプールのサイズが固定だったような気がするonigiri.w2.icon